package com.zsj.arithmetic.BlueBridgeCupCExam;

/**
 *
 * C：平方怪圈
 *
 * 思路：这道题的题目不是很容易看懂
 * 它的意思是你有一个正整数值，将它的每个位的单一值分解出来之后进行平方，然后再把每个位置的平方值相加起来
 * 例子8
 * 8=64
 *
 * 就这样一直循环之后，拿出最大值
 *
 */
public class NumberThreeExam {
    public static void main(String[] args) {
        int i = MaxSquareCircle(666);
        System.out.println(i);
    }
    public static int MaxSquareCircle(int n){
        //假设传入的值是123,int n=123;
        int max=0;//初始化一个最大值
        //因为我们需要无限循环，使用while，当条件不成立时结束循环
        while (n>0){//true,n=14
            int demo1 =n;//123
            int demo2=0; // 0
            //while循环当结果是true时会一直循环
            while (demo1>0){//true,true,true,false结束循环
                demo2+=(demo1%10)*(demo1%10);//0+9=9,9+4=13,13+1=14
                //将这个数字/10得到下一位的位置
                demo1/=10;//123/10=12,12/10=1,0/10=0
            }
            //这个时候demo1=0,demo2=14
            n=demo2;//14,重新向上赋值，如此反复
            if (max<n) {//0<13所以true
                max = n;//14
                System.out.println(max);
            }
        }
        return max;
    }
    }

